//JavaScriptManager js脚本管理器。模块名必须与文件名相同
// 必须实现的控制接口：
// new				js函数形式：new(string param) (bool res,string err)
// Start			js函数形式：Start() (bool res,string err)
// Stop				js函数形式：Stop() (bool res,string err)
//
// 可选的事件接口：
// MQTTReciveEvent	js函数形式：MQTTReciveEvent(byte[] buffer) (bool res,string err)
//
// 可供调用的接口函数：
// MQTTSend			js函数形式：MQTTSend(byte[] buffer)(bool res,string error)
var DirectSend = {
    Host : "localhost",
    Port : 502,
    TCPServer : null,
    clientKey : null,
    Init : function(param){
        console.info(param);
        var obj = JSON.parse(param); //由JSON字符串转换为JSON对象
        this.Host = obj.host;
        this.Port = obj.port;
        console.info("this.Host:" + this.Host);
        console.info("this.Port:" + this.Port);
        this.TCPServer = api.create("TCPServer");
        var contex = this;
        this.TCPServer.Init(this.Host,this.Port,true);
        this.TCPServer.ReceiveCallbak(function(key,buffer){ 
            try {
                contex.MQTTSend(buffer);
            }
            catch(err) {
                console.info(err);
            }
        });
        this.TCPServer.AcceptCallbak(function(key){
            console.info("Key:" + key);
            contex.clientKey = key;
        });
        return {res:true,err:null};
    }, //(bool res,string err)
    Start : function(){ 
        return {res:true,err:null}
    }, //(bool res,string err)
    Stop : function(){ return {res:true,err:null}}, //(bool res,string err)
    MQTTReciveEvent : function(buffer) { 
        try {
            this.TCPServer.Send(this.clientKey, buffer);
        }
        catch(err) {
            console.info(err);
        }
        return {res:true,err:null};
    }
};